#ifndef __LkkRccInit_H_
#define __LkkRccInit_H_
#include "stm32f1xx_hal.h"

//typedef struct {
//	uint32_t HSION:1;
//	uint32_t HSIRDY:1;
//	uint32_t :1;
//	uint32_t HSITRIM:5;
//	uint32_t HSICAL:8;
//	uint32_t HSEON:1;
//	uint32_t HSERDY:1;
//	uint32_t HSEBYP:1;
//	uint32_t CSSON:1;
//	uint32_t :3;
//	uint32_t PLLON:1;
//	uint32_t PLLRDY:1;
//	uint32_t :5;
//}Rcc_CR;

//typedef struct{
//	uint32_t SW:2;
//	uint32_t SWS:2;
//	uint32_t HPRE:4;
//	uint32_t PPRE1:3;
//	uint32_t PPRE2:3;
//	uint32_t ADCPRE:2;
//	uint32_t PLLSRC:1;
//	uint32_t PLLXTPRE:1;
//	uint32_t PLLMUL:4;
//	uint32_t USBPRE:1;
//	uint32_t MCO:3;
//	uint32_t :5;
//}Rcc_CFGR;
//typedef struct{
//	uint32_t LSIRDYF:1;
//	uint32_t LSERDYF:1;
//	uint32_t HSIRDYF:1;
//	uint32_t PLLRDYF:1;
//	uint32_t :2;
//	uint32_t CSSF:1;
//	uint32_t LSIRDYIE:1;
//	uint32_t LSERDYIE:1;
//	uint32_t HSIRDYIE:1;
//	uint32_t HSERDYIE:1;
//	uint32_t PLLRDYIE:1;
//	uint32_t LSIRDYC:1;
//	uint32_t LSERDYC:1;
//	uint32_t HSIRDYC:1;
//	uint32_t HSERDYC:1;
//	uint32_t PLLRDYC:1;
//	uint32_t CSSC:1;
//	uint32_t :7;
//}Rcc_CIR;

//typedef struct{
//	uint32_t DMEAEN:1;
//	uint32_t :1;
//	uint32_t SRAMEN:1;
//	uint32_t :1;
//	uint32_t FLITFEN:1;
//	uint32_t :26;
//}Rcc_AHBENR;

//typedef struct{
//	uint32_t AFIOEN:1;
//	uint32_t IOPAEN:1;
//	uint32_t IOPBEN:1;
//	uint32_t IOPCEN:1;
//	uint32_t IOPDEN:1;
//	uint32_t IOPEEN:1;
//	uint32_t ADC2EN:1;
//	uint32_t TIM1EN:1;
//	uint32_t SPI1EN:1;
//	uint32_t USART1EN:1;
//	uint32_t :16;
//}Rcc_APB2ENR;

//typedef struct{
//	uint32_t TIM2EN:1;
//	uint32_t TIM3EN:1;
//	uint32_t TIM4EN:1;
//	uint32_t WWDGEN:1;
//	uint32_t SPI2EN:1;
//	uint32_t USART2EN:1;
//	uint32_t USART3EN:1;
//	uint32_t I2C1EN:1;
//	uint32_t I2C2EN:1;
//	uint32_t USBEN:1;
//	uint32_t CANEN:1;
//	uint32_t BKPEN:1;
//	uint32_t PWREN:1;
//}Rcc_APB1ENR;

//typedef struct{
//	uint32_t LSEON:1;
//	uint32_t LSERDY:1;
//	uint32_t LSEBYP:1;
//	uint32_t RTCSEL:2;
//	uint32_t RTCEN:1;
//	uint32_t BDRST:1;
//}Rcc_BDCR;

//typedef struct{
//	uint32_t LSION:1;
//	uint32_t LSIRDY:1;
//	uint32_t RMVF:1;
//	uint32_t PINRSTF:1;
//	uint32_t PORRSTF:1;
//	uint32_t SFTRSTF:1;
//	uint32_t IWDGRSTF:1;
//	uint32_t WWDGRSTF:1;
//	uint32_t LPWRRSTF:1;
//}Rcc_CSR;

//typedef struct{
//	Rcc_CR rcc_CR;
//	Rcc_CFGR rcc_CFGR;
//	Rcc_CSR rcc_CSR;
//	Rcc_BDCR rcc_BDCR;
//	Rcc_APB1ENR rcc_APB1ENR;
//	Rcc_APB2ENR rcc_APB2ENR;
//	Rcc_AHBENR rcc_AHBENR;
//	Rcc_CIR rcc_CIR;
//	
//}Lkk_Rcc;
typedef struct {
    uint32_t HSION : 1;
    uint32_t HSIRDY : 1;
    uint32_t RES0 : 1;
    uint32_t HSITRIM : 5;
    uint32_t HSICAL : 8;
    uint32_t HSEON : 1;
    uint32_t HSERDY : 1;
    uint32_t HSEBYP : 1;
    uint32_t CSSON : 1;
    uint32_t RES1 : 4;
    uint32_t PLLON : 1;
    uint32_t PLLRDY : 1;
    uint32_t RES2 : 6;
}Rcc_CR;
typedef struct {
    uint32_t SW : 2;
    uint32_t SWS : 2;
    uint32_t HPRE : 4;
    uint32_t PPRE1 : 3;
    uint32_t PPRE2 : 3;
    uint32_t ADCPRE : 2;
    uint32_t PLLSRC : 1;
    uint32_t PLLXTPRE : 1;
    uint32_t PLLMUL : 4;
    uint32_t USBPRE : 1;
    uint32_t RES0 : 1;
    uint32_t MCO : 3;
    uint32_t RES1 : 5;
}Rcc_CFGR;
typedef struct {
    uint32_t LSIRDYF : 1;
    uint32_t LSERDYF : 1;
    uint32_t HSIRDYF : 1;
    uint32_t HSERDYF : 1;
    uint32_t PLLRDYF : 1;
    uint32_t RES0 : 2;
    uint32_t CSSF : 1;
    uint32_t LSIRDYIE : 1;
    uint32_t LSERDYIE : 1;
    uint32_t HSIRDYIE : 1;
    uint32_t HSERDYIE : 1;
    uint32_t PLLRDYIE : 1;
    uint32_t RES1 : 3;
    uint32_t LSIRDYC : 1;
    uint32_t LSERDYC : 1;
    uint32_t HSIRDYC : 1;
    uint32_t HSERDYC : 1;
    uint32_t PLLRDYC : 1;
    uint32_t RES2 : 2;
    uint32_t CSSC : 1;
    uint32_t RES3 : 8;
}Rcc_CIR;
typedef struct {
    uint32_t AFIORST : 1;
    uint32_t RES0 : 1;
    uint32_t IOPARST : 1;
    uint32_t IOPBRST : 1;
    uint32_t IOPCRST : 1;
    uint32_t IOPDRST : 1;
    uint32_t IOPERST : 1;
    uint32_t IOPFRST : 1;
    uint32_t IOPGRST : 1;
    uint32_t ADC1RST : 1;
    uint32_t ADC2RST : 1;
    uint32_t TIM1RST : 1;
    uint32_t SPI1RST : 1;
    uint32_t TIM8RST : 1;
    uint32_t USART1RST : 1;
    uint32_t ADC3RST : 1;
    uint32_t RES1 : 3;
    uint32_t TIM9RST : 1;
    uint32_t TIM10RST : 1;
    uint32_t TIM11RST : 1;
    uint32_t RES2 : 10;
}Rcc_APB2RSTR;
typedef struct {
    uint32_t TIM2RST : 1;
    uint32_t TIM3RST : 1;
    uint32_t TIM4RST : 1;
    uint32_t TM5RST : 1;
    uint32_t TM6RST : 1;
    uint32_t TM7RST : 1;
    uint32_t TIM12RST : 1;
    uint32_t TIM13RST : 1;
    uint32_t TIM14RST : 1;
    uint32_t RES0 : 2;
    uint32_t WWDGRST : 1;
    uint32_t RES1 : 2;
    uint32_t SPI2RST : 1;
    uint32_t SPI3RST : 1;
    uint32_t RES2 : 1;
    uint32_t USART2RST : 1;
    uint32_t USART3RST : 1;
    uint32_t UART4RST : 1;
    uint32_t UART5RST : 1;
    uint32_t I2C1RST : 1;
    uint32_t I2C2RST : 1;
    uint32_t USBRST : 1;
    uint32_t RES3 : 1;
    uint32_t CANRST : 1;
    uint32_t RES4 : 1;
    uint32_t BKPRST : 1;
    uint32_t PWRRST : 1;
    uint32_t DACRST : 1;
    uint32_t RES5 : 2;
}Rcc_APB1RSTR;
typedef struct {
    uint32_t DMA1EN : 1;
    uint32_t DMA2EN : 1;
    uint32_t SRAMEN : 1;
    uint32_t RES0 : 1;
    uint32_t FLITFEN : 1;
    uint32_t RES1 : 1;
    uint32_t CRCEN : 1;
    uint32_t RES2 : 1;
    uint32_t FSMCEN : 1;
    uint32_t RES3 : 1;
    uint32_t SDIOEN : 1;
    uint32_t RES4 : 21;
}Rcc_AHBENR;
typedef struct {
    uint32_t AFIOEN : 1;
    uint32_t RES0 : 1;
    uint32_t IOPAEN : 1;
    uint32_t IOPBEN : 1;
    uint32_t IOPCEN : 1;
    uint32_t IOPDEN : 1;
    uint32_t IOPEEN : 1;
    uint32_t IOPFEN : 1;
    uint32_t IOPGEN : 1;
    uint32_t ADC1EN : 1;
    uint32_t ADC2EN : 1;
    uint32_t TIM1EN : 1;
    uint32_t SPI1EN : 1;
    uint32_t TIM8EN : 1;
    uint32_t USART1EN : 1;
    uint32_t ADC3EN : 1;
    uint32_t RES1 : 3;
    uint32_t TIM9EN : 1;
    uint32_t TIM10EN : 1;
    uint32_t TIM11EN : 1;
    uint32_t RES2 : 10;
}Rcc_APB2ENR;
typedef struct {
    uint32_t TIM2EN : 1;
    uint32_t TIM3EN : 1;
    uint32_t TIM4EN : 1;
    uint32_t TIM5EN : 1;
    uint32_t TIM6EN : 1;
    uint32_t TIM7EN : 1;
    uint32_t TIM12EN : 1;
    uint32_t TIM13EN : 1;
    uint32_t TIM14EN : 1;
    uint32_t RES0 : 2;
    uint32_t WWDGEN : 1;
    uint32_t RES1 : 2;
    uint32_t SPI2EN : 1;
    uint32_t SPI3EN : 1;
    uint32_t RES2 : 1;
    uint32_t USART2EN : 1;
    uint32_t USART3EN : 1;
    uint32_t UART4EN : 1;
    uint32_t UART5EN : 1;
    uint32_t I2C1EN : 1;
    uint32_t I2C2EN : 1;
    uint32_t USBEN : 1;
    uint32_t RES3 : 1;
    uint32_t CANEN : 1;
    uint32_t RES4 : 1;
    uint32_t BKPEN : 1;
    uint32_t PWREN : 1;
    uint32_t DACEN : 1;
    uint32_t RES5 : 2;
}Rcc_APB1ENR;
typedef struct {
    uint32_t LSEON : 1;
    uint32_t LSERDY : 1;
    uint32_t LSEBYP : 1;
    uint32_t RES0 : 5;
    uint32_t RTCSEL : 2;
    uint32_t RES1 : 5;
    uint32_t RTCEN : 1;
    uint32_t BDRST : 1;
    uint32_t RES2 : 15;
}Rcc_BDCR;
typedef struct{
	uint32_t LSION:1;
	uint32_t LSIRDY:1;
	uint32_t RES0:22;
	uint32_t RMVF:1;
	uint32_t RES1:1;
	uint32_t PINRSTF:1;
	uint32_t PORRSTF:1;
	uint32_t SFTRSTF:1;
	uint32_t IWDGRSTF:1;
	uint32_t WWDGRSTF:1;
	uint32_t LPWRRSTF:1;
}Rcc_CSR;
typedef struct {
    Rcc_CR rcc_CR;
    Rcc_CFGR rcc_CFGR;
    Rcc_CIR rcc_CIR;
    Rcc_APB2RSTR rcc_APB2RSTR;
    Rcc_APB1RSTR rcc_APB1RSTR;
    Rcc_AHBENR rcc_AHBENR;
    Rcc_APB2ENR rcc_APB2ENR;
    Rcc_APB1ENR rcc_APB1ENR;
    Rcc_BDCR rcc_BDCR;
	Rcc_CSR rcc_CSR;
}Lkk_Rcc;


typedef struct {
    uint32_t LPDS : 1;
    uint32_t PDDS : 1;
    uint32_t CWUF : 1;
    uint32_t CSBF : 1;
    uint32_t PVDE : 1;
    uint32_t PLS : 3;
    uint32_t DBP : 1;
    uint32_t RES0 : 23;
}Pwr_CR;
typedef struct {
    uint32_t WUF : 1;
    uint32_t SBF : 1;
    uint32_t PVDO : 1;
    uint32_t RES0 : 5;
    uint32_t EWUP : 1;
    uint32_t RES1 : 23;
}Pwr_CSR;

typedef struct {
    Pwr_CR pwr_CR;
    Pwr_CSR pwr_CSR;
}Lkk_Pwr;

typedef struct {
    uint32_t LATENCY : 3;
    uint32_t HLFCYA : 1;
    uint32_t PRFTBE : 1;
    uint32_t PRFTBS : 1;
    uint32_t RES0 : 26;
}Lkk_FLASH_ACR;

typedef struct {
    Lkk_FLASH_ACR lkk_flash_ACR;
}Lkk_FLASH;


#endif /* __My_RCC_H_ */



